package busterminal.persistence;

/**
 * Интерфейс, возвращающий ссылки на реализации интерфейсов для каждой сущности
 */
public interface DaoFactory {

    /**
     * Получить ссылку на реализацию интерфейса для автобуса
     * @return ссылка на класс-реализацию интерфейса {@link BusDAO}
     */
    BusDAO getBusDAO();

    /**
     * Получить ссылку на реализацию интерфейса для модели автобуса
     * @return ссылка на класс-реализацию интерфейса {@link BusModelDAO}
     */
    BusModelDAO getBusModelDAO();

    /**
     * Получить ссылку на реализацию интерфейса для маршрута
     * @return ссылка на класс-реализацию интерфейса {@link RouteDAO}
     */
    RouteDAO getRouteDAO();

    /**
     * Получить ссылку на реализацию интерфейса для пункта расписания
     * @return ссылка на класс-реализацию интерфейса {@link ScheduledItemDAO}
     */
    ScheduledItemDAO getScheduledItemDAO();

    /**
     * Получить ссылку на реализацию интерфейса для остановочного пункта
     * @return ссылка на класс-реализацию интерфейса {@link StoppingPointDAO}
     */
    StoppingPointDAO getStoppingPointDAO();

    /**
     * Получить ссылку на реализацию интерфейса для рейса
     * @return ссылка на класс-реализацию интерфейса {@link TripDAO}
     */
    TripDAO getTripDAO();
}
